package com.haozi.ehub.core.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * @author ：terry
 * @date ：Created in 2020/7/2 17:13
 * @description：TODO
 * @version: 1.0
 */
@Slf4j
@SuppressWarnings(value = "all")
public class BCryptUtils {

    /**
     * 密码加密
     * @author     ： terry
     * @date       ： Created in 2020/7/2 17:17
     * @param charSequence 未加密的密码
     * @return String 返回加密后的密码
     */
    public static String encode(CharSequence charSequence) {
        log.info("Execute BCryptUtils encode");
        BCryptPasswordEncoder bcrytEncoder = new BCryptPasswordEncoder();
        return passwordEncoder().encode(charSequence);
    }

    /**
     * 密码验证
     * @author     ： terry
     * @date       ： Created in 2020/7/2 17:17
     * @param charSequence 未加密的密码
     * @param s 加密后的密码
     * @return boolean 返回true/false
     */
    public static boolean matches(CharSequence pwd, String bcryptPwd) {
        log.info("Execute BCryptUtils encode");
        return passwordEncoder().matches(pwd, bcryptPwd);
    }

    /**
     * 公共的获取BCryptPasswordEncoder的方法
     * @author     ： terry
     * @date       ： Created in 2020/7/2 17:22
     * @return BCryptPasswordEncoder
     */
    private static BCryptPasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }

}
